# 查看商品信息
# 保存用户信息
# 添加购物车
# 结算

# 购物系统类
# 实例属性 -- 商品信息、系统说明信息、 当前用户--多个用户
# 方法： 登录、 注册、 查看商品、添加购物车、结算

# 用户
# 实例属性： 名字 、 密码、 钱、 --购物车

import pickle
import json
class User:
    def __init__(self, name, passwd, init_amount):
        self.name = name
        self.passwd = passwd
        self.init_amount = init_amount
        self.shopping_car = {}

# shopping_system
class ShoppingSystem:
    def __init__(self, goods_info, sys_info):
        self.goods_info = goods_info
        self.sys_info = sys_info
        self.userdict = {}

    def load_user(self):
        file_name = self.sys_info + ".pickle"
        try:
            with open(file_name, "rb") as fp:
                self.userdict = pickle.load(fp)
        except:
            pass
    # 注册
    def register(self, name, passwd, initial_amount):
        if name not in self.userdict:
            # 创建一个新用户，实例化User类
            user = User(name, passwd, initial_amount)
            # 把名字作为key，user对象作为value 存在self.userdict里面
            self.userdict[name] = user
            file_name = self.sys_info + ".pickle"
            with open(file_name, "wb") as fp:
                pickle.dump(self.userdict, fp)
        else:
            print("用户已存在")
    # 登录
    def login(self, name, passwd):
        if name in self.userdict and passwd == self.userdict[name].passwd:
            return True
        else:
            return False

fruit_goods = {
    'FOOO1': { "name": "苹果", "price": 8 },
    'F0002': { "name": "香蕉", "price": 4}
}


medicine_goods = {
    'M0001': { "name": "奥司他韦", "price": 60},
    'M0002': { "name": "抗病毒口服液", "price": 30}
}
system1 = ShoppingSystem(fruit_goods, "水果购物系统")
system2 = ShoppingSystem(medicine_goods, "药品购物系统")

system = [system1, system2]

while 1:
    print("当前平台，已有购物系统如下：")
    for k, v in enumerate(system):
        print(f"{k}.{v.sys_info}")
    c1 = input("请输入你的选择(按q退出):")
    if c1 == "q":
        break
    if c1.isdigit() and int(c1) < len(system):
        c1 = int(c1)
        current_system = system[c1]
        print(f"欢迎进入{current_system.sys_info}".center(40, "*"))
        while 1:
            c2 = input("1.登录\n2.注册\n请输入你的选择(按q退出):")
            if c2 == "q":
                break
            if c2 == "1":
                name, passwd = input("请输入你的名字以及密码(用空白分隔)").split()
                if current_system.login(name, passwd):
                    while 1:
                        c3 = input("1、查看商品\n2、添加购物车\n3、结算购物车\nq、退出")
                        if c3 == "1":
                            pass
                else:
                    print("登录失败，请重新登录")
            elif c2 == "2":
                name, passwd, amount = input("请输入你的名字、密码、初始金额（用空白分割）").split()
                current_system.register(name, passwd, amount)
                print(f"当前系统用户有:{current_system.userdict.keys()}")
            else:
                print("输入有误！")
    else:
        print("输入有误，请重新输入！")







